package br.com.salao.model;

import java.util.List;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import org.apache.log4j.Logger;

import br.com.salao.entity.Estado;
import br.com.salao.session.EstadoBase;
import br.com.salao.util.Utils;

public class EstadoModel  {

	private Logger logger =  Logger.getLogger(EstadoModel.class.getName());

	public boolean incluir(Estado estado){
		try {	
			EstadoBase estadoBase= getBean();
			return estadoBase.incluir(estado);
		} catch (Exception e) {

			StringBuffer sb = new StringBuffer();
			sb.append(e.getMessage() + "\n");
			sb.append(e.getStackTrace());
			logger.debug(sb.toString());

			return false;
		}
	}

	public Estado buscarEstadoById(Estado estado){
		try {	
			EstadoBase estadoBase= getBean();
			return estadoBase.buscarEstadoById(estado);
		} catch (Exception e) {

			StringBuffer sb = new StringBuffer();
			sb.append(e.getMessage() + "\n");
			sb.append(e.getStackTrace());
			logger.debug(sb.toString());

			return null;
		}
	}

	public List<Estado> buscarEstadosByIdPais(int idPais){				
		try {	
			EstadoBase estadoBase= getBean();
			return estadoBase.buscarEstadosByIdPais(idPais);
		} catch (Exception e) {

			StringBuffer sb = new StringBuffer();
			sb.append(e.getMessage() + "\n");
			sb.append(e.getStackTrace());
			logger.debug(sb.toString());

			return null;
		}
	}

	public List<Estado> listar(){		
		try {	
			EstadoBase estadoBase= getBean();	
			return estadoBase.listar();
		} catch (Exception e) {

			StringBuffer sb = new StringBuffer();
			sb.append(e.getMessage() + "\n");
			sb.append(e.getStackTrace());
			logger.debug(sb.toString());

			return null;
		}
	}

	public Estado buscar(int id){
		try {	
			EstadoBase estadoBase= getBean();
			return estadoBase.buscar(id);
		} catch (Exception e) {

			StringBuffer sb = new StringBuffer();
			sb.append(e.getMessage() + "\n");
			sb.append(e.getStackTrace());
			logger.debug(sb.toString());

			return null;
		}
	}
    public EstadoBase getBean() throws Exception {
    	
        Properties prop = Utils.getProperties();     
        Context ctx = new InitialContext(prop); 
        Object ref = ctx.lookup(prop.getProperty("ESTADO_LOOKUP"));       
      
        return (EstadoBase)PortableRemoteObject.narrow(ref, EstadoBase.class);
    }
}
